package cn.bearspark.common.util;

/**
 * 处理显示数字的信息的工具类
 *
 * @author f
 */
public class NumberInfoUtil {

    /**
     * 一万的数值
     */
    private static final double WAN = 1e4;

    /**
     * 一万 / 10 的数值
     */
    private static final double WAN_10 = WAN / 10;

    /**
     * 万的数字信息
     */
    private static final String WAN_INFO = "万";

    /**
     * 一亿的数值
     */
    private static final double YI = WAN * WAN;

    /**
     * 一亿 / 10 的数值
     */
    private static final double YI_10 = YI / 10;

    /**
     * 亿的数字信息
     */
    private static final String YI_INFO = "亿";

    /**
     * 一兆的数值
     */
    private static final double ZHAO = WAN * YI;

    /**
     * 一兆 / 10 的数值
     */
    private static final double ZHAO_10 = ZHAO / 10;

    /**
     * 兆的数字信息
     */
    private static final String ZHAO_INFO = "兆";

    /**
     * 获取显示的数字信息
     *
     * @param number 要显示的数字
     * @return 要显示的数字的数字信息
     */
    public static String getNumberInfo(long number) {
        if (number < WAN) {
            return number + "";
        } else if (number < YI) {
            if (number % WAN < WAN_10) {
                // 如果余数不足小数点的第一位，则无需返回小数点后一位
                return String.format("%.0f%s", number / WAN, WAN_INFO);
            } else {
                return String.format("%.1f%s", number / WAN, WAN_INFO);
            }
        } else if (number < ZHAO) {
            if (number % YI < YI_10) {
                // 如果余数不足小数点的第一位，则无需返回小数点后一位
                return String.format("%.0f%s", number / YI, YI_INFO);
            } else {
                return String.format("%.1f%s", number / YI, YI_INFO);
            }
        } else {
            if (number % ZHAO < ZHAO_10) {
                return String.format("%.0f%s", number / ZHAO, ZHAO_INFO);
            } else {
                return String.format("%.1f%s", number / ZHAO, ZHAO_INFO);
            }
        }
    }

}
